
//package com.x52im.rainbowchat.logic.more;
//
//import android.app.Activity;
//import android.content.Context;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.graphics.Bitmap;
//import android.os.Bundle;
//import android.util.Log;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.ViewGroup;
//import android.widget.Button;
//import android.widget.CheckBox;
//import android.widget.CompoundButton;
//import android.widget.ImageView;
//import android.widget.TextView;
//
//import com.eva.android.AutoUpdateDaemon;
//import com.eva.android.widget.ActivityRoot;
//import com.eva.android.widget.DataLoadingAsyncTask;
//import com.eva.android.widget.WidgetUtils;
//import com.eva.android.widget.WidgetUtils.ToastType;
//import com.eva.android.widget.alert.AlertDialog;
//import com.eva.framework.dto.DataFromServer;
//import MyApplication;
//import com.x52im.rainbowchat.logic.main.impl.LoginHelper;
//import PreferencesToolkits;
//import com.x52im.rbchat.R;
//import com.x52im.rainbowchat.common.dto.AutoUpdateInfoFromServer;
//import HttpRestHelper;
//import com.x52im.rainbowchat.http.logic.dto.RosterElementEntity;
//import LoginActivity;
//import AvatarHelper;
//import IntentFactory;
//
//import java.util.Observable;
//import java.util.Observer;
//
///**
// *  “更多”的activity实现页面.
// *
// * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
// * @version 1.0
// * @since 2.1
// */
//// TODO: 此类将在基于Fragment的新版本中删除！
//// TODO: 此类将在基于Fragment的新版本中删除！
//// TODO: 此类将在基于Fragment的新版本中删除！
//public class MoreActivity extends ActivityRoot
//{
//	private final static String TAG = MoreActivity.class.getSimpleName();
//
//	public final int REQUEST_CODE_FOR_GO_TO_USER$ACTIVITY = 1;
//
//	private ViewGroup currentUserBtn;
//	private CheckBox msgToneChkBox;
//	private Button msgToneBtn;
//	private Button aboutUsBtn = null;
//	private Button exitBtn = null;
//	private Button helpBtn = null;
//	private Button versionBtn = null;
//
//	private ImageView viewlocalUserAvatar = null;
//
//	// 当此值为true时表示本Activity中已尝试过从服务端更新头像，否由表示未尝试过
//	// 此值的目的是控制头像从服务端的更新仅在本Activity的生命周期中执行1次以结省服务端性能和压力，仅此而已
//	private boolean tryGetAvatarFromServer = false;
//	private ShowUserAvatar showUserAvatarWrapper= null;
//
//	//android2.0前需要重写onKeyDown方法才能实现，2.0及以后直接重写onBackPressed即可哦
////	/**
////	 * 捕获back键.
////	 */
////	@Override
////	public void onBackPressed()
////	{
////		LoginActivity.doLogout(MoreActivity.this, true, null);
////	}
//
//	@Override
//	public void onCreate(Bundle savedInstanceState)
//	{
//		super.onCreate(savedInstanceState);
//
////		initViews();
////		initListeners();
//
//		// 现在只在onCreate时刷新本地用户头像：可能更新不太及时，但总比要onResume里对服务端的性能压力要小吧
//		RosterElementEntity u = MyApplication.getInstance(this).getIMClientManager().getLocalUserInfo();
//		if(u != null)
//		{
//			// 更新本地用户头像
//			showUserAvatarWrapper = new ShowUserAvatar(this, u.getUser_uid(), viewlocalUserAvatar, true
//					, 120 , 120 // 此头像用于界面中好友的头像显示，大小参考：main_more布局中的@+id/main_more_settings_avatarView（60dp*60dp）
//					){
//				@Override
//				protected void avatarUpdateForDownload(Bitmap cachedAvatar)
//				{
//					super.avatarUpdateForDownload(cachedAvatar);
//					tryGetAvatarFromServer = true;
//				}
//			};
//		}
//	}
//
//	@Override
//	protected void onResume()
//	{
//		super.onResume();
//		//
//		this.refreshDatas();
//	}
//
//	/**
//	 * 本方法由父类的 {@link #init(Bundle)} 调用，子类可在此方法中实现ui的初始化。
//	 */
//	@Override
//	protected void initViews(Bundle savedInstanceState)
//	{
//		// 按back键回到桌面
//		this.goHomeOnBackPressed = true;
//
//		//设定自定义标题栏（设定此值即意味着开启自定义标题栏的使用，必须要在setContentView前设定）
//		customeTitleBarResId = R.id.main_more_titleBar;
//		//养成良好习惯：首先设置主layout，确保后绪的操作中使用到的组件都可以被find到
//		setContentView(R.layout.main_my_fragment);
//		//对自定义标题栏中的组件进行设定
//		this.getCustomeTitleBar().setLeftBackButtonVisible(false);
//
//		//设置标题（自定义标题栏后的title文本设置是不同的哦，见CustomeTitleBar中的说明）
//		this.setTitle($$(R.string.portal_activity_more));
//
//		currentUserBtn = (ViewGroup)findViewById(R.id.main_more_settings_currentUserBtn);
//		msgToneChkBox = (CheckBox) this.findViewById(R.id.sms_block_info_switch);
//		msgToneBtn = (Button)this.findViewById(R.id.main_more_settings_recordLoginNameBtn);
//		exitBtn = (Button)this.findViewById(R.id.main_more_settings_exitSystemBtn);
//		aboutUsBtn = (Button)this.findViewById(R.id.main_more_settings_aboutBtn);
//		helpBtn = (Button)this.findViewById(R.id.main_more_settings_helpBtn);
//		viewlocalUserAvatar = (ImageView)this.findViewById(R.id.main_more_settings_avatarView);
//		versionBtn = (Button)this.findViewById(R.id.main_more_settings_currentVersionBtn);
//
//		//根据本地数据设置是否选中
//		msgToneChkBox.setChecked(PreferencesToolkits.isAPPMsgToneOpen(MoreActivity.this));
//	}
//
//	/**
//	 * 本方法由父类的 {@link #init(Bundle)} 调用，子类可在此方法中为各UI功能组件增加事件临听。
//	 */
//	@Override
//	protected void initListeners()
//	{
//		// 点击头像看大图
//		viewlocalUserAvatar.setOnClickListener(new OnClickListener(){
//			@Override
//			public void onClick(View v)
//			{
//				// 本地用户信息
//				RosterElementEntity u = MyApplication.getInstance(MoreActivity.this)
//						.getIMClientManager().getLocalUserInfo();
//				if(u != null)
//					AvatarHelper.showAvatarImage(MoreActivity.this, u.getUser_uid(), null);
//			}
//		});
//
//		// 点击进入”个人中心“
//		currentUserBtn.setOnClickListener(new OnClickListener() {
//			@Override
//			public void onClick(View v)
//			{
//				Intent intent = new Intent(MoreActivity.this, UserActivity.class);
//				startActivityForResult(intent, REQUEST_CODE_FOR_GO_TO_USER$ACTIVITY);
//			}
//		});
//
//		// 点击"退出登陆"
//		exitBtn.setOnClickListener(new OnClickListener(){
//				@Override
//				public void onClick(View v) {
//					new AlertDialog.Builder(MoreActivity.this)
//							.setTitle($$(R.string.general_are_u_sure))
//							.setMessage($$(R.string.main_more_msg_tone_exit_to_login))
//							.setPositiveButton($$(R.string.general_ok),  new DialogInterface.OnClickListener(){
//								@Override
//								public void onClick(DialogInterface dialog,int which) {
//									exitAndGotoLogin(MoreActivity.this);
//								}
//							})
//							.setNegativeButton($$(R.string.general_cancel), null)
//							.show();
//				}
//		});
//
//		// 点击进入“关于我们”
//		aboutUsBtn.setOnClickListener(new OnClickListener(){
//				@Override
//				public void onClick(View v)
//				{
//					startActivity(new Intent(MoreActivity.this, AboutActivity.class));
//				}
//		});
//
//		// 消息通知开关
//		msgToneBtn.setOnClickListener(new View.OnClickListener()
//		{
//			@Override
//			public void onClick(View v)
//			{
//				msgToneChkBox.setChecked(!msgToneChkBox.isChecked());
//			}
//		});
//		// 消息能知状态单选框
//		msgToneChkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
//		{
//			@Override
//			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
//			{
//				if (isChecked)
//				{
//					PreferencesToolkits.setAPPMsgToneOpen(MoreActivity.this, true);
//					WidgetUtils.showToast(MoreActivity.this, $$(R.string.main_more_msg_tone_opend_hint), ToastType.OK);
//				}
//				else
//				{
//					PreferencesToolkits.setAPPMsgToneOpen(MoreActivity.this, false);
//					WidgetUtils.showToast(MoreActivity.this, $$(R.string.main_more_msg_tone_closed_hint), ToastType.OK);
//				}
//			}
//		});
//
//		// 点击进入”帮助中心“
//		helpBtn.setOnClickListener(new OnClickListener()
//		{
//			@Override
//			public void onClick(View v)
//			{
//				startActivity(IntentFactory.createHelpActivityIntent(MoreActivity.this
//						, HelpActivity.FININSH_VIEWPAGE_FINISHACTIVITY, true));
//			}
//		});
//
//		// 版本检查
//		versionBtn.setOnClickListener(new OnClickListener(){
//			@Override
//			public void onClick(View v)
//			{
//				new VersionCheckAsyncTask().execute();
//			}
//		});
//	}
//
//	/**
//	 * 刷新界面数据显示。
//	 */
//	private void refreshDatas()
//	{
//		//把用户名设置到”当前登陆用户“组件上，以便查看
//		RosterElementEntity u = MyApplication.getInstance(this)
//				.getIMClientManager().getLocalUserInfo();
//		if(u != null)
//		{
//			((TextView)this.findViewById(R.id.main_more_settings_currentUserInfoView))
//				.setText(u.getNickname()//+"("+u.getUser_id()+")"
//						);
//			((TextView)this.findViewById(R.id.main_more_settings_kchatIdView))
//				.setText("Chat ID: "+u.getUser_uid());
//		}
//
//		((TextView)this.findViewById(R.id.main_more_settings_currentVersionInfoView)).setText(
//				LoginHelper.getAPKVersionName()+"("+ LoginHelper.getAPKVersionCode()+")");
//
//		// 有onResume方法中刷新用户头像的目的是保持本地头像的及时刷新
//		if(showUserAvatarWrapper != null)
//		{
//			if(!tryGetAvatarFromServer)
//				showUserAvatarWrapper.setNeedTryGerAvatarFromServer(true);
//			else
//				showUserAvatarWrapper.setNeedTryGerAvatarFromServer(false);
//			showUserAvatarWrapper.showCahedAvatar();
//		}
//	}
//
//	//----------------------------------------------------------------------------------------------------------
//	/**
//	 * 从下一个Activity回来后的数据回调。
//	 */
//	@Override
//	protected void onActivityResult(int requestCode, int resultCode, Intent data)
//	{
//		if(resultCode != Activity.RESULT_OK)
//		{
//			//result is not correct
//			return;
//		}
//
//		// 从个人信息界面返回的，那么就尝试刷新他的头像吧（因为在这个界面里可能修改了用户的头像哦）
//		if(requestCode == REQUEST_CODE_FOR_GO_TO_USER$ACTIVITY)
//		{
//			RosterElementEntity u = MyApplication.getInstance(this)
//					.getIMClientManager().getLocalUserInfo();
//			if(u != null)
//			{
//				// 更新本地用户头像
//				new ShowUserAvatar(this, u.getUser_uid(), viewlocalUserAvatar
//						// 注意：此时就没有必要尝试从服务端更新头像了，因为在用户个人信
//						// 息界面里如果要更新那么就已经存了一个新缓存到本地了
//						, false
//						, 120 , 120 // 此头像用于界面中好友的头像显示，大小参考：main_more布局中的@+id/main_more_settings_avatarView（60dp*60dp）
//				).showCahedAvatar();
//			}
//		}
//
//		super.onActivityResult(requestCode, resultCode, data);
//	}
//
//	/**
//	 * 退出当前登陆状态并跳转到登际界面（以便重新登陆）。
//	 *
//	 * @param c 上下文对象
//	 */
//	public static void exitAndGotoLogin(Context c)
//	{
//		// 退出登陆（但不退出JVM——即不通出APP进程）
//		LoginActivity.doLogoutNoConfirm(MyApplication.getInstance2(), false, new Observer(){
//
//			// 此通知将在注册与IM服务器的连接、释放IM资源、释放本APP中所有activity后被通知
//			@Override
//			public void update(Observable arg0, Object arg1)
//			{
//				// 退出登陆时，取消"自动登陆"的开关量设置
//				PreferencesToolkits.setAutoLogin(c, false);
//
//				// 代码执行至此，表示APP中所有的activity都已被回收（包括本MoreAcvitity），
//				// 而要再次显示登陆界面activity的话，只能借助APP全局唯一的Context——即
//				// Application实例，以下代码千万不可引用错了Context哦
//				Context ctx = MyApplication.getInstance2();
//
//				Intent iLogin = IntentFactory.createLoginIntent(ctx);
//				// 因Application对象并不是Activity，所以必须要加此flag，否则无法启动Activity
//				iLogin.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//
//				// 进入登陆activity
//				ctx.startActivity(iLogin);
//			}
//		});
//	}
//
//
//	//----------------------------------------------------------------------------------------------------------- inner class
//	/**
//	 * 版本检查线程实现内部类.
//	 *
//	 * @author Jack Jiang
//	 */
//	protected class VersionCheckAsyncTask extends DataLoadingAsyncTask<Object, Integer, DataFromServer>
//	{
//		public VersionCheckAsyncTask()
//		{
//			super(MoreActivity.this, $$(R.string.main_more_version_check_loading));
//		}
//
//		/**
//		 * 在后台执行 {@link doLogin()}实现数据的网络提交和处于结果的读取 .
//		 *
//		 * @param parems 外界传进来的参数
//		 * @return 查询结果，将传递给onPostExecute(..)方法
//		 */
//		@Override
//		protected DataFromServer doInBackground(Object... parems)
//		{
//			return HttpRestHelper.submitCheckUpdateToServer(""+LoginHelper.getAPKVersionCode());
//		}
//
//		/**
//		 * 处理服务端返回的登陆结果信息.
//		 *
//		 * @see AutoUpdateDaemon
//		 */
//		protected void onPostExecuteImpl(Object jsonOfResult)
//		{
//			if(jsonOfResult instanceof String)
//			{
//				final AutoUpdateInfoFromServer aui = HttpRestHelper.parseCheckUpdateFromServer((String)jsonOfResult);
//				if(aui.isNeedUpdate())
//				{
//					Log.d("MoreActivity", "isNeedUpdate?"+aui.isNeedUpdate()
//							+",getLatestClientAPKVercionCode="+aui.getLatestClientAPKVercionCode()
//							+",getLatestClientAPKFileSize="+aui.getLatestClientAPKFileSize()
//							+",getLatestClientAPKURL"+aui.getLatestClientAPKURL());
//
//					new AlertDialog.Builder(MoreActivity.this)
//						.setTitle($$(R.string.login_form_have_latest_version))
//						.setMessage($$(R.string.login_form_have_latest_version_descrption))
//						.setPositiveButton($$(R.string.login_form_have_latest_version_update_now),  new DialogInterface.OnClickListener(){
//							@Override
//							public void onClick(DialogInterface dialog, int which)
//							{
//								//进入版本更新处理类进行更新处理
//								AutoUpdateDaemon up=new AutoUpdateDaemon(MoreActivity.this
//										, aui.getLatestClientAPKVercionCode()
//										, aui.getLatestClientAPKFileSize()
//										, aui.getLatestClientAPKURL());
//								try{
//									up.doUpdate();
//								}
//								catch (Exception e){
//									WidgetUtils.showToast(MoreActivity.this, $$(R.string.login_form_version_error), ToastType.ERROR);
//									Log.d("MoreActivity", "新版检查和下载时遇到错误，"+e.getMessage(), e);
//								}
//							}
//						})
//						.setNegativeButton($$(R.string.login_form_have_latest_version_ignore),  null)
//						.show();
//				}
//				// 无需更新
//				else
//				{
//					// 更新检查（处理）完成后开始进入真正的登陆线程
//					new AlertDialog.Builder(MoreActivity.this)
//						.setTitle(R.string.general_prompt)
//						.setMessage(R.string.main_more_version_check_is_latest)
//						.setPositiveButton(R.string.general_ok,  null)
//					.show();
//				}
//			}
//			else
//			{
//				Log.e(TAG, "服务端返回了无效的登陆反馈信息，result="+ jsonOfResult);
//			}
//		}
//	}
//}
